package com.unittec.zk.sdk.work.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.Date;

/**
 * 用车申请-增/改 请求实体
 *
 * @author wangyongfeng
 * @date 2021/12/15
 */
@ApiModel("用车申请-增/改 请求实体")
@Data
public class Req202004 implements Serializable {

    private static final long serialVersionUID = 8884670654988451257L;

    private String id;

    /**
     * 用车人
     */
    @ApiModelProperty(value = "用车人")
    @NotBlank(message = "请选择用车人")
    private String userId;

    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    @Size(max = 15, message = "联系电话不超过15个字符")
    private String connectPhone;

    /**
     * 用车人数
     */
    @ApiModelProperty(value = "用车人数")
    @Min(value = 1, message = "用车人数不能小于1")
    @Max(value = Integer.MAX_VALUE, message = "请正确输入用车人数")
    private Integer maxPassengers;

    /**
     * 用车开始时间
     */
    @ApiModelProperty(value = "用车开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @NotNull(message = "请选择用车时间")
    private Date startTime;

    /**
     * 用车结束时间
     */
    @ApiModelProperty(value = "用车结束时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @NotNull(message = "请选择用车时间")
    private Date endTime;

    /**
     * 目的地
     */
    @ApiModelProperty(value = "目的地")
    @Size(max = 255, message = "目的地不超过255个字符")
    @NotBlank(message = "请输入用车目的地")
    private String destination;

    /**
     * 用车事由
     */
    @ApiModelProperty(value = "用车事由")
    @Size(max = 255, message = "用车事由不超过255个字符")
    @NotBlank(message = "请输入用车事由")
    private String useReason;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Size(max = 255, message = "备注不超过255个字符")
    private String remarks;

    /**
     * 审批状态（1审批中 2审批通过 3未通过）
     */
    @ApiModelProperty(value = "审批状态（1审批中 2审批通过 3未通过）")
    private Integer applicationState;

    /**
     * 车辆类型（1轿车 2SUV 3MPV 4货车）
     */
    @ApiModelProperty(value = "车辆类型（1轿车 2SUV 3MPV 4货车）")
    private String truckType;
}